package models

import (
	"time"

	"gorm.io/gorm"
)

// 餐桌
type Table struct {
	gorm.Model
	Number       string `gorm:"unique;not null"` // 餐桌号
	Capacity     int    `gorm:"not null"`        // 容纳人数
	Status       string `gorm:"not null"`        // 状态：空闲、使用中、预订、维护中
	CurrentOrder string // 当前订单号（如果有）
	Location     string `gorm:"not null"` // 位置
	Description  string // 描述
}

// 桌位预订
type TableReservation struct {
	gorm.Model
	UserID      uint      `gorm:"not null;index"`             // 预订用户ID
	User        User      `gorm:"foreignKey:UserID"`          // 用户关联
	TableID     uint      `gorm:"not null;index"`             // 桌位ID
	Table       Table     `gorm:"foreignKey:TableID"`         // 桌位关联
	StartTime   time.Time `gorm:"not null"`                   // 预订开始时间
	EndTime     time.Time `gorm:"not null"`                   // 预订结束时间
	GuestCount  int       `gorm:"not null"`                   // 就餐人数
	Status      string    `gorm:"not null;default:'pending'"` // 状态：pending（待确认）, confirmed（已确认）, cancelled（已取消）, completed（已完成）
	PhoneNumber string    `gorm:"not null"`                   // 联系电话
	Notes       string    // 特殊要求
}
